Automatic message presentation based on past messages

ABSTRACT

In one aspect, a device includes a processor and a memory accessible to the processor. The memory bears instructions executable by the processor to access past messages associated with the device, and determine that at least a first multi-term phrase appears in plural messages among the past messages. The instructions are also executable by the processor to, responsive to input invoking message composition and based at least in part on a determination that the multi-term phrase appears in plural messages among the past messages, present on the device at least plural terms from the multi-term phrase in an order in which the at least plural terms appear in the multi-term phrase as a candidate message.

FIELD

The present application relates generally to automatically presentingmessages based on past messages.

BACKGROUND

When composing a message on a device, it is sometimes the case that themessage being composed is similar in at least some respects to previousmessages that have been composed. This makes composing a new messagefrom scratch that is to share similarities with past messages annoying,unnecessary, and laborious.

SUMMARY

Accordingly, in a first aspect a device includes a processor and amemory accessible to the processor. The memory bears instructionsexecutable by the processor to access past messages associated with thedevice, and determine that at least a first multi-term phrase appears inplural messages among the past messages. The instructions are alsoexecutable by the processor to, responsive to input invoking messagecomposition and based at least in part on a determination that themulti-term phrase appears in plural messages among the past messages,present on the device at least plural terms from the multi-term phrasein an order in which the at least plural terms appear in the multi-termphrase as a candidate message.

In another aspect, a method includes identifying stored messages withrespective multi-term phrases as being candidate messages based on eachof the multi-term phrases appearing plural times in a data structure,associating at least some of the candidate messages with respectivecandidate recipients, and responsive to input indicating at least inpart a candidate recipient, presenting at least one candidate messageassociated with the candidate recipient.

In still another aspect, an apparatus includes a first processor, afirst network adapter, and storage. The storage bears instructions forexecution by a second processor for sending messages, storing at leastsome of the messages in a data structure, and automatically presentingon the apparatus a message from the data structure responsive to inputto send a message and based at least in part on an identification of arecipient in the data structure. The first processor transfers theinstructions over the network via the first network adapter.

The details of present principles, both as to their structure andoperation, can best be understood in reference to the accompanyingdrawings, in which like reference numerals refer to like parts, and inwhich:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary system in accordance withpresent principles;

FIG. 2 is a block diagram of a network of devices, in accordance withpresent principles;

FIG. 3 is an exemplary flowchart of logic to be executed by a system inaccordance with present principles; and

FIGS. 4-6 are exemplary user interfaces (UI) presentable on a system inaccordance with present principles.

DETAILED DESCRIPTION

This disclosure relates generally to device based user information. Withrespect to any computer systems discussed herein, a system may includeserver and client components, connected over a network such that datamay be exchanged between the client and server components. The clientcomponents may include one or more computing devices includingtelevisions (e.g. smart TVs, Internet-enabled TVs), computers such asdesktops, laptops and tablet computers, and other mobile devicesincluding smart phones. These client devices may employ, as non-limitingexamples, operating systems from Apple, Google, or Microsoft. A Unixoperating system may be used. These operating systems can execute one ormore browsers such as a browser made by Microsoft or Google or Mozillaor other browser program that can access web applications hosted by theInternet servers over a network such as the Internet, a local intranet,or a virtual private network.

As used herein, instructions refer to computer-implemented steps forprocessing information in the system. Instructions can be implemented insoftware, firmware or hardware; hence, illustrative components, blocks,modules, circuits, and steps are set forth in terms of theirfunctionality.

A processor may be any conventional general purpose single- ormulti-chip processor that can execute logic by means of various linessuch as address lines, data lines, and control lines and registers andshift registers. Moreover, any logical blocks, modules, and circuitsdescribed herein can be implemented or performed, in addition to ageneral purpose processor, in or by a digital signal processor (DSP), afield programmable gate array (FPGA) or other programmable logic devicesuch as an application specific integrated circuit (ASIC), discrete gateor transistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A processorcan be implemented by a controller or state machine or a combination ofcomputing devices.

Any software and/or applications described by way of flow charts and/oruser interfaces herein can include various sub-routines, procedures,etc. It is to be understood that logic divulged as being executed bye.g. a module can be redistributed to other software modules and/orcombined together in a single module and/or made available in ashareable library.

Logic when implemented in software, can be written in an appropriatelanguage such as but not limited to C# or C++, and can be stored on ortransmitted through a computer-readable storage medium (e.g. that maynot be a carrier wave) such as a random access memory (RAM), read-onlymemory (ROM), electrically erasable programmable read-only memory(EEPROM), compact disk read-only memory (CD-ROM) or other optical diskstorage such as digital versatile disc (DVD), magnetic disk storage orother magnetic storage devices including removable thumb drives, etc. Aconnection may establish a computer-readable medium. Such connectionscan include, as examples, hard-wired cables including fiber optics andcoaxial wires and twisted pair wires. Such connections may includewireless communication connections including infrared and radio.

In an example, a processor can access information over its input linesfrom data storage, such as the computer readable storage medium, and/orthe processor can access information wirelessly from an Internet serverby activating a wireless transceiver to send and receive data. Datatypically is converted from analog signals to digital by circuitrybetween the antenna and the registers of the processor when beingreceived and from digital to analog when being transmitted. Theprocessor then processes the data through its shift registers to outputcalculated data on output lines, for presentation of the calculated dataon the device.

Components included in one embodiment can be used in other embodimentsin any appropriate combination. For example, any of the variouscomponents described herein and/or depicted in the Figures may becombined, interchanged or excluded from other embodiments.

“A system having at least one of A, B and C” (likewise “a system havingat least one of A, B, or C” and “a system having at least one of A, B,C”) includes systems that have A alone, B alone, C alone, A and Btogether, A and C together, B and C together, and/or A, B, and Ctogether.

The term “circuit” or “circuitry” is used in the summary, description,and/or claims. As is well known in the art, the term “circuitry”includes all levels of available integration, e.g., from discrete logiccircuits to the highest level of circuit integration such as VLSI, andincludes programmable logic components programmed to perform thefunctions of an embodiment as well as general-purpose or special-purposeprocessors programmed with instructions to perform those functions.

Now specifically in reference to FIG. 1, it shows an exemplary blockdiagram of an information handling system and/or computer system 100such as e.g. an Internet enabled, computerized telephone (e.g. a smartphone), a tablet computer, a notebook or desktop computer, an Internetenabled computerized wearable device such as a smart watch, acomputerized television (TV) such as a smart TV, etc. Thus, in someembodiments the system 100 may be a desktop computer system, such as oneof the ThinkCentre® or ThinkPad® series of personal computers sold byLenovo (US) Inc. of Morrisville, N.C., or a workstation computer, suchas the ThinkStation®, which are sold by Lenovo (US) Inc. of Morrisville,N.C.; however, as apparent from the description herein, a client device,a server or other machine in accordance with present principles mayinclude other features or only some of the features of the system 100.

As shown in FIG. 1, the system 100 includes a so-called chipset 110. Achipset refers to a group of integrated circuits, or chips, that aredesigned to work together. Chipsets are usually marketed as a singleproduct (e.g., consider chipsets marketed under the brands INTEL®, AMD®,etc.).

In the example of FIG. 1, the chipset 110 has a particular architecture,which may vary to some extent depending on brand or manufacturer. Thearchitecture of the chipset 110 includes a core and memory control group120 and an I/O controller hub 150 that exchange information (e.g., data,signals, commands, etc.) via, for example, a direct management interfaceor direct media interface (DMI) 142 or a link controller 144. In theexample of FIG. 1, the DMI 142 is a chip-to-chip interface (sometimesreferred to as being a link between a “northbridge” and a“southbridge”).

The core and memory control group 120 include one or more processors 122(e.g., single core or multi-core, etc.) and a memory controller hub 126that exchange information via a front side bus (FSB) 124. As describedherein, various components of the core and memory control group 120 maybe integrated onto a single processor die, for example, to make a chipthat supplants the conventional “northbridge” style architecture.

The memory controller hub 126 interfaces with memory 140. For example,the memory controller hub 126 may provide support for DDR SDRAM memory(e.g., DDR, DDR2, DDR3, etc.). In general, the memory 140 is a type ofrandom-access memory (RAM). It is often referred to as “system memory.”

The memory controller hub 126 further includes a low-voltagedifferential signaling interface (LVDS) 132. The LVDS 132 may be aso-called LVDS Display Interface (LDI) for support of a display device192 (e.g., a CRT, a flat panel, a projector, a touch-enabled display,etc.). A block 138 includes some examples of technologies that may besupported via the LVDS interface 132 (e.g., serial digital video,HDMI/DVI, display port). The memory controller hub 126 also includes oneor more PCI-express interfaces (PCI-E) 134, for example, for support ofdiscrete graphics 136. Discrete graphics using a PCI-E interface hasbecome an alternative approach to an accelerated graphics port (AGP).For example, the memory controller huh 126 may include a 16-lane (x16)PCI-E port for an external PCI-E-based graphics card (including e.g. oneof more GPUs). An exemplary system may include AGP or PCI-E for supportof graphics.

The I/O hub controller 150 includes a variety of interfaces. The exampleof FIG. 1 includes a SATA interface 151, one or more PCI-E interfaces152 (optionally one or more legacy PCI interfaces), one or more USBinterfaces 153, a LAN interface 154 (more generally a network interfacefor communication over at least one network such as the Internet, a WAN,a LAN, etc. under direction of the processor(s) 122), a general purposeI/O interface (GPIO) 155, a low-pin count (LPC) interface 170, a powermanagement interface 161, a clock generator interface 162, an audiointerface 163 (e.g., for speakers 194 to output audio), a total cost ofoperation (TCO) interface 164, a system management bus interface (e.g.,a multi-master serial computer bus interface) 165, and a serialperipheral flash memory/controller interface (SPI Flash) 166, which, inthe example of FIG. 1, includes BIOS 168 and boot code 190. With respectto network connections, the I/O hub controller 150 may includeintegrated gigabit Ethernet controller lines multiplexed with a PCI-Einterface port. Other network features may operate independent of aPCI-E interface.

The interfaces of the I/O hub controller 150 provide for communicationwith various devices, networks, etc. For example, the SATA interface 151provides for reading, writing or reading and writing information on oneor more drives 180 such as HDDs, SDDs or a combination thereof, but inany case the drives 180 are understood to be e.g. tangible computerreadable storage mediums that may not be carrier waves. The I/O hubcontroller 150 may also include an advanced host controller interface(AHCI) to support one or more drives 180. The PCI-E interface 152 allowsfor wireless connections 182 to devices, networks, etc. The USBinterface 153 provides for input devices 184 such as keyboards (KB),mice and various other devices (e.g., cameras, phones, storage, mediaplayers, etc.).

In the example of FIG. 1, the LPC interface 170 provides for use of oneor more ASICs 171, a trusted platform module (TPM) 172, a super I/O 173,a firmware hub 174, BIOS support 175 as well as various types of memory176 such as ROM 177, Flash 178, and non-volatile RAM (NVRAM) 179. Withrespect to the TPM 172, this module may be in the form of a chip thatcan be used to authenticate software and hardware devices. For example,a TPM may be capable of performing platform authentication and may beused to verify that a system seeking access is the expected system.

The system 100, upon power on, may be configured to execute boot code190 for the BIOS 168, as stored within the SPI Flash 166, and thereafterprocesses data under the control of one or more operating systems andapplication software (e.g., stored in system memory 140). An operatingsystem may be stored in any of a variety of locations and accessed, forexample, according to instructions of the BIOS 168.

In addition to the foregoing, the system 100 is understood to include anaudio receiver/microphone 195 in communication with the processor 122and providing input thereto based on e.g. a user providing audible inputto the microphone 195 in accordance with present principles (e.g. toprovide audible input to create a message). One or more biometricsensors 196 are also shown that are in communication with the processor122 and provide input thereto, such as e.g. heart rate sensors and/orheart monitors, blood pressure sensors, iris and/or retina detectors,oxygen sensors (e.g. blood oxygen sensors), glucose and/or blood sugarsensors, pedometers and/or speed sensors, body temperature sensors, etc.Furthermore, the system 100 may include one or more accelerometers 197or other motion sensors such as e.g. gesture sensors that are incommunication with the processor 122 and provide input thereto.

A camera 198 is also shown, which is in communication with and providesinput to the processor 122. The camera 198 may be, e.g., a thermalimaging camera, a digital camera such as a webcam, and/or a cameraintegrated into the system 100 and controllable by the processor 122 togather pictures/images and/or video. In addition, a GPS transceiver 199is shown that is configured to e.g. receive geographic positioninformation from at least one satellite and provide the information tothe processor 122. However, it is to be understood that another suitableposition receiver other than a GPS receiver may be used in accordancewith present principles to e.g. determine the location of the system100.

Before moving on to FIG. 2, it is to be understood that an exemplaryclient device or other machine/computer may include fewer or morefeatures than shown on the system 100 of FIG. 1. In any case, it is tobe understood at least based on the foregoing that the system 100 isconfigured to undertake present principles.

Turning now to FIG. 2, it shows exemplary devices communicating over anetwork 200 such as e.g. the Internet in accordance with presentprinciples is shown. It is to be understood that e.g. each of thedevices described in reference to FIG. 2 may include at least some ofthe features, components, and/or elements of the system 100 describedabove. In any case, FIG. 2 shows a notebook computer 202, a desktopcomputer 204, a wearable device 206 such as e.g. a smart watch, a smarttelevision (TV) 208, a smart phone 2120, a tablet computer 212, and aserver 214 in accordance with present principles such as e.g. anInternet server that may e.g. provide cloud storage accessible to thedevices 202-212. It is to be understood that the devices 202-212 areconfigured to communicate with each other over the network 200 toundertake present principles.

FIG. 3 illustrates logic that may be executed by any of the foregoingdevices. Beginning at block 300, the logic stores, organizes, arranges,and/or associates (e.g. in ways to be described shortly and in e.g. adata structure stored locally on the device undertaking the logic ofFIG. 3, a cloud storage area accessible to the device, another deviceaccessible to the device undertaking the logic of FIG. 3, etc.) at leastone message previously sent by the device of FIG. 3 or another devicefor which the device of FIG. 3 has access to its previously sentmessage(s) therefrom. The messages, or at least portions thereof such ase.g. multi-term phrases contained therein, may be stored, organized,arranged, and/or associated (hereafter referred to simply as “stored,etc.” for convenience) by and/or based on frequency of use generally(e.g. irrespective of e.g. sender, recipient, and/or device), frequencyof use of transmission to particular recipients, frequency of input tothe device of FIG. 3 (and/or frequency of origination from the device ofFIG. 3), frequency of input by a user of the device of FIG. 3, and/orfrequency of receipt by the device of FIG. 3 or another device, etc. Forclarity, hereafter “the device” refers to the device undertaking thelogic of FIG. 3, and “another device” refers to at least one otherdevice for which the device of FIG. 3 has access to messages associatedtherewith, sent therefrom, received thereat, etc.

Note that in addition to or in lieu of the foregoing, the messages, orat least portions thereof such as e.g. multi-term phrases containedtherein, may be stored in some embodiments, etc. in the data structurewithout respect to frequency and/or based simply on recipient person ofthe message, sending person of the message, recipient device of themessage, and/or sending device of the message. Note further that inaddition to or in lieu of the foregoing, the messages, or at leastportions thereof such as e.g. multi-term phrases contained therein, maybe stored, etc. in the data structure based on any combination and/orsub-combination of one or more of the foregoing parameters, types,and/or classifications. What's more, it is to be understood thatmessages that may be stored, arranged, and/or associated include but arenot limited to text messages, email messages, social networkingmessages, so-called “instant messages,” etc.

Accordingly, it is to be understood that in at least some embodiments,the messages may be stored, etc. in the data structure e.g. by bothrespective recipient and respective frequency with which the respectivemessages appears in the data structure. E.g., all messages to aparticular recipient may be organized into sub-groups for the recipientsuch that e.g. messages to the recipient containing one or more commonmulti-term phrases may be grouped together in one group (e.g. and/orseparate from a group of messages to the same recipient containingdifferent multi-term phrases and/or or not including the same multi-termphrases as other groups for the recipient).

Still in reference to FIG. 3, after block 300 the logic proceeds toblock 302, at which the logic receives input indicating a desire to sendone or more messages, and/or receives input invoking messagecomposition, and/or identifying a (e.g. desired) recipient of a message.The logic then moves to block 304 where the logic accesses the datastructure described herein, and thereafter proceeds to decision diamond306.

At diamond 306, the logic determines based at least in part on data inthe data structure whether at least one multi-term phrase has appearedin at least one and e.g. plural messages among the past messages thatmay be candidate messages for the message to be composed based on theinput received at block 302. Note further that in some embodiments, thedetermination made at diamond 306 of a candidate message may bedetermined as such e.g. if the multi-term phrase has been used athreshold number of times in messages e.g. as input to the device (e.g.and/or originated from the device), as received by the device, as inputby a particular person, and/or as received by a particular person, etc.

Note even further that the determination made at diamond 306 may bebased on input received at block 302 such as e.g. the desired recipient,the sending person of the message, the sending device of the message,and/or the recipient device of the message. What's more, thedetermination at diamond 306 may be based on a current context as well,such as e.g. the time of year being around the holidays (e.g. in such aninstance “Merry Christmas” may be determined to be a candidate messagebut only in the month of December when it is frequently used, but note.g. January through November). Current context may also include e.g.relevant birthdays, anniversaries, etc. that may be determined based one.g. calendar information for at least one electronic calendaraccessible to the device. Thus, it is to be understood that in someembodiments context may include frequency of use of the message and/orthe multi-term phrase at and/or during particular time of day, week,month, and/or year. It is to be further understood that context(s) maybe associated with multi-term phrases as stored, etc. in the datastructure at block 300, as well in combination with the other basesdescribed above.

In any case, note that a negative determination at diamond 306 cause thelogic to proceed to block 316, at which the logic e.g. presents a blankinput area for message composition or at least presents an input areanot necessarily including a multi-term phrase previously used in one ormore past messages even if e.g. presenting generic candidate messages.Also at block 316, the logic may receive user input for messagecomposition and to send the message, and then actually send the messageto the recipient. The logic then proceeds from block 316 to block 314,to be described shortly.

However, referring back to diamond 306 again, an affirmativedetermination made thereat causes the logic to instead proceed to block308, at which the logic presents (e.g. automatically without user inputsubsequent to e.g. the input received at block 302) as a candidatemessage plural (e.g. and/or all) terms from the multi-term phrase(s)e.g. in an order in which the at least plural terms appear in themulti-term phrase. The logic then proceeds to block 310 where the logicreceives user input selecting at least one term from the multi-termphrase (and/or selecting the multi-term phrase itself) and/or confirmingit is to be used for the message being composed. Also at block 310, thelogic may receive user input modifying at least a portion of at leastone term from the multi-term phrase (and/or modifying the multi-termphrase itself), and/or deleting at least a portion of at least one termfrom the multi-term phrase (and/or deleting the multi-term phraseitself). Still further, at block 310 the logic may receive additionaluser input to compose the message (e.g. adding additional text beyondthe multi-term phrase to thus e.g. customize or render further uniquethe message).

Still in reference to FIG. 3, after block 310 the logic proceeds toblock 312 where the logic receives user input to send the message, andthen transmits the message to the recipient(s) (e.g. at least in partusing a network adapter of the device). The logic may then proceed toblock 314, it being reiterated that block 314 may also be arrived atfrom block 316 if a negative determination was made at diamond 306. Inany case, at block 314 the logic may store, etc. the message and/orassociated information (e.g. at least one multi-term phrase therefrom)in the data structure as set forth above in reference to block 300,and/or in a manner as described above in reference to block 300, thuse.g. adding the most-recently composed and sent message to the datastructure for future use in accordance with present principles.

Continuing the detailed description now in reference to FIG. 4, anexemplary user interface (UI) 400 presentable on a device such as thesystem 100 in accordance with present principles is shown. The UI 400includes a recipient field 402 for user input to specify at least onerecipient of a message to be composed, along with a with a text inputfield 404 for entry of a message. Note further that an indication 406 isshown in the field 404 that indicates that the device presenting the UI400 is locating and/or determining e.g. multi-term phrases that may becandidates for the message being composed, it being thus understood thate.g. the indication 406 may be presented while the device makes thedeterminations) discussed above in reference to diamond 306, andfurthermore that such a determination in the present instance may bebased at least on e.g. the user input specifying the at least onerecipient. Accordingly, in the present instance as shown, the user hasinput the user's wife as the recipient, and hence the device presentingthe UI 400 may determine multi-term phrases as candidates based on thosephrases being previously transmitted to the user's wife and/or theuser's wife's device.

Still in reference to FIG. 4, also included is a see more selectorelement 408 that is selectable to automatically without further userinput present one or more candidate multi-term phrases that aredetermined in accordance with present principles for selection by theuser to, responsive to their selection, automatically without furtheruser input be input by the device into the field 404. The immediatelyforegoing will be described further in reference to FIG. 5. But still inreference to FIG. 4, note that a blank selector element 410 is alsoshown that is selectable to automatically without further user inputresponsive thereto e.g. cause the device to stop locating candidatemulti-term phrases and/or not input any previously used multi-termphrase into the field 404 but instead leave the field 404 blank or as ithas been (e.g. already) modified by a user (e.g. if the user has alreadyinput at least some text that may or may not contain a previously usedmulti-term phrase). Last, note that a send selector element 412 is shownthat is selectable to automatically without further user inputresponsive thereto transmit at least the text in the field 404 as amessage to the recipient indicated in the field 402.

Now in reference to FIG. 5, it shows a UI 500 presenting one or morecandidate multi-term phrases previously used in at least one message inaccordance with present principles for selection by a user to e.g.,responsive to their selection, automatically without further user inputbe input by the device into a text entry field, such as the field 404described above. Thus, the UI 500 includes an indication 502 that a useris to select one or more of the messages shown on the UI 500. A firstselector element 504 is shown that indicates a multi-term phrase and/ormessage thereon that may be used. Note that the character for the numbersign (e.g. “#”) is a character that may e.g. dynamically change withoutuser input based on context (e.g. such as in the present instance thedevice estimating a time until arrival at “home” from a current locationbased on e.g. GPS coordinates and map information, etc.), and/or is acharacter that may be presented as such in a text entry field fordeletion by a user and replacement with input by a user of an actualnumber (e.g. five), thus modifying the multi-term phrase shown on theselector element 304 that is to be input to the text entry field (e.g.such as the field 404).

In addition to the foregoing, the UI 500 also includes a second selectorelement 508 that indicates a multi-term phrase and/or message to “recordthe game,” which based on its selection may be automatically input bythe device into a text entry field of a message composition screen inaccordance with present principles. Yet a third selector element 510 isshown containing the multi-term phrase “love you,” along with thevariable XYZ that may e.g. dynamically change without user input basedon context (e.g. such as in the present instance the device changing“XYZ” to indicate a particular recipient based on e.g. the recipientbeing indicated by a user in a recipient field such as the field 402described above, e.g. and/or based on the device determining that thedevice and/or user associated therewith typically (e.g. more than oncein the past such as a threshold number of times) has sent a message to aparticular recipient at the particular current time of day), and/or is avariable that may be presented as such in a text entry field fordeletion by a user and replacement with input by a user of a particularrecipient, thus modifying the multi-term phrase shown on the selectorelement 510 that is to be input to the text entry field (e.g. such asthe field 404).

Continuing the detailed description with reference to FIG. 6, it shows aUI 600 for configuring one or more settings of e.g. a softwareapplication with code for and/or configured for undertaking presentprinciples. A first setting 602 is shown on the UI 600 that pertains towhether or not to present any candidate messages to a user and/or on adevice (e.g. in a text entry field) in accordance with presentprinciples, and accordingly a yes selector element 604 is shown forautomatically without further user input configuring the device and/orapplication to present candidate messages, and also a no selectorelement 606 is shown for automatically without further user inputconfiguring the device and/or application to not present candidatemessages (e.g. instead, simply presenting a blank text entry field uponinvocation by a user of message composition).

The UI 600 also includes a selector element 608 selectable toautomatically without further user input cause e.g. a listing, and/orUI, and/or stored messages, and/or multi-term phrases to be presented(e.g. as derived from the data structure(s) described herein) forediting by a user. Thus, it is to be understood that once edited, such amulti-term phrase as automatically determined to be a candidate messageand/or as automatically input to a text entry field, will be and/orappear as edited by the user.

In addition to the foregoing, the UI 600 of FIG. 6 may also include asetting 610 for customizing particular recipients, recipient groups,and/or recipient devices for which candidate messages may be presentedin accordance with present principles when e.g. composing a message tothat particular recipient. Thus, a field 612 is shown and may includeone or more recipients for which the user has configured the device topresent candidate messages when composing messages thereto, along with amodify selector element 614 selectable to initiate a modify function tochange, add, and/or delete recipients from the field 612 (e.g. to add tothe field 612, the device may present a listing of contacts forselection based on information from a contact list accessible to thedevice).

A setting 616 is also shown for customizing particular recipients,recipient groups, and/or recipient devices for which candidate messagesare to not be presented in accordance with present principles, when e.g.composing a message to that particular recipient. Thus, a field 618 isshown and may include one or more recipients for which the user hasconfigured the device to exclude from presenting and/or to not presentcandidate messages when composing messages thereto, along with a modifyselector element 620 selectable to initiate a modify function to change,add, and/or delete recipients from the field 620 (e.g. to add to thefield 618, the device may present a listing of contacts for selectionbased on information from a contact list accessible to the device).

Without reference to any particular figure, it is to be understood inaccordance with present principles that associating at least some of thecandidate messages with respective candidate recipients as referencedherein may also include e.g. automatically without user inputdetermining a recipient for a message to be composed (e.g. yet tospecified by a user) based on context (e.g. the time of day anddetermining that the user typically messages the same person with atleast one same or similar multi-term phrase at a particular time eachday).

Also without reference to any particular figure, it is to be understoodthat context that may be used and/or on which determinations may bebased in accordance with present principles may include whom a messageis to be directed to and/or whom a message has been directed to in thepast, further information about the sender and/or recipient (e.g. basedon input from a user, accessed over the Internet such as from a socialnetworking account, derived from past messages, derived from pastInternet searches (e.g. searched using the device which is to transmit amessage with a multi-term phrase) etc.). Furthermore, lexicons used bythe sender and recipient may be included in multi-term phrases to beused in accordance with present principles, such as e.g. “sweetie” whenreferring to a wife contact, “boy” when referring to a friend contact,etc. What's more, if a message to be composed is e.g. a subsequentmessage in a message string or chain, the message to be created and/orautomatically determined in accordance with present principles may bebased on the context of the conversation as indicated in the string orchain as well. Thus, it is to be understood that multiple layers ofcontextually relevant information may be used.

Also, as understood herein, although multi-term phrases are specificallydescribed and referenced, it is to be understood that single-termphrases and even e.g. single words or portions of words (e.g. a rootword) may be similarly determined for input to compose a new messagebased on the single term or word being used in a previously sentmessage.

What's more, it is to be understood that e.g. messages as stored in thedata structure for e.g. use at a later time to determine a multi-termphrase in accordance with present principles (e.g. past messages assometimes referred to herein) may be e.g. messages that are audiblyreceived (e.g. audible and/or voice input from the user) and/or receivedand converted to text for entry into the data structure using voicerecognition technology.

Still without reference to any particular figure, present principlesrecognize that although e.g. a software application for undertakingpresent principles may be vended with a device such as the system 100,it is to be understood that present principles apply in instances wheresuch an application is e.g. downloaded from a server to a device over anetwork such as the Internet.

Based on the present application, it may now be appreciated that asystem in accordance with present principles may scan message historiesand detect frequently used phrases. When sending a message, an optionmay be presented that provides access to these past messages for quickercomposition of the message. The frequently used messages may then beedited on the fly by the user. The messages may be customized per userand/or recipient, and/or by a user, and the relationship betweensender-receiver may also be derived based on the message history.

Furthermore, such messages may be abstracted to produce an e.g. formularesponse such as “I will be there in X mins,” where “X” is a variablereplaceable and/or determinable by a user. As noted herein, time of day,month, and/or year may also be considered such as e.g. a message “MerryXmas” may not be an available choice all year, but “HappyBirthday/Anniversary/etc.” may appear based on appropriateness perrecipient e.g. at any time of the year.

While the particular AUTOMATIC MESSAGE PRESENTATION BASED ON PASTMESSAGES is herein shown and described in detail, it is to be understoodthat the subject matter which is encompassed by the present applicationis limited only by the claims.

What is claimed is:
 1. A device comprising: at least one processor; adisplay accessible to the at least one processor; and storage accessibleto the at least one processor and bearing instructions executable by theat least one processor to: store a first phrase from a sent message forpresentation of the first phrase again during a subsequent compositionof a second message, wherein the first phrase from the sent message thatis stored comprises a variable when stored that will be replaced in thesecond message with at least one character for a particular recipientduring composition of the second message; and identify the first phrasefor presentation during composition of the second message; and present,on the display and during composition of the second message, the firstphrase.
 2. The device of claim 1, wherein the instructions areexecutable by the at least one processor to: present, on the display, asettings user interface (UI) that comprises an option selectable to editphrases which are to be presented in the future during composition ofmessages that will be composed in the future.
 3. The device of claim 1,wherein the instructions are executable by the at least one processorto: present, on the display, a settings user interface (UI) thatcomprises at least one option selectable to one or more of enable anddisable presentation, in the future, of candidate phrases duringcomposition of messages.
 4. The device of claim 1, wherein theinstructions are executable by the at least one processor to: present,on the display, a settings user interface (UI) comprising a first optionto select one or more first recipients for which to present candidatephrases in the future while messages thereto are being composed in thefuture.
 5. A method, comprising: abstracting, from at least one sentmessage, a formula phrase, the formula phrase comprising a variable forreplacement with at least one character for a particular recipientduring composition of a second message; storing the formula phrasecomprising the variable that was abstracted from the sent message;during composition of the second message, identifying the formulaphrase; and presenting, on a display during composition of the secondmessage, a first phrase that comprises at least a portion of the formulaphrase.
 6. The method of claim 5, comprising: presenting, on thedisplay, a settings user interface (UI) that comprises at least oneoption selectable to one of enable and disable presentation of candidatephrases during composition, in the future, of messages.
 7. An apparatus,comprising: a first processor; a network adapter; and storage bearinginstructions executable by a second processor for: storing a firstphrase derived from a sent message for presentation during a subsequentcomposition of a second message, wherein the first phrase as storedcomprises a variable that will be replaced with at least one characterfor a particular recipient during composition of the second message;during composition of the second message, identifying the first phrasefor presentation; and during composition of the second message,presenting, on a display, at least a portion of the first phrase;wherein the first processor transfers the instructions to the secondprocessor over a network via the network adapter.
 8. The apparatus ofclaim 7, wherein the instructions are executable by the second processorfor: present, on the display, a settings user interface (UI) comprisingat least one option to select one or more recipients for which topresent candidate phrases in the future while messages thereto are beingcomposed in the future.
 9. The device of claim 1, wherein the firstphrase is identified from a data structure that stores phrases based onat least one parameter.
 10. The method of claim 5, comprising:responsive to abstracting the formula phrase, storing the formula phrasecomprising the variable in a data structure based on at least oneparameter; and during composition of the second message, identifying theformula phrase from the data structure based on the at least oneparameter.
 11. The method of claim 5, comprising: replacing the variablewith at least one dynamically determined character to establish thefirst phrase.
 12. The method of claim 11, comprising: replacing thevariable with the at least one dynamically determined characterautomatically without receiving user input to replace the variable withthe at least one dynamically determined character.
 13. The method ofclaim 11, wherein the at least one dynamically determined character isdetermined during composition of the second message based on anidentified context for the second message.
 14. The apparatus of claim 7,wherein the first phrase is identified during composition of the secondmessage based on a context associated with the second message.
 15. Theapparatus of claim 7, wherein the instructions are executable by thesecond processor for: storing the first phrase with the variable in adata structure based on at least one parameter; and during compositionof the second message, identifying the first phrase with the variablefrom the data structure.
 16. The device of claim 1, wherein theinstructions are executable by the at least one processor to: present,during composition of the second message, the variable in a text inputfield that is presented on the display, wherein the variable isreplaceable by a user during composition of the second message.
 17. Thedevice of claim 4, wherein the settings UI comprises a second option toselect one or more second recipients for which to not present candidatephrases in the future while messages thereto are being composed in thefuture.
 18. The method of claim 5, wherein the first phrase, whenpresented during composition of the second message, comprises thevariable, the variable being replaceable by a user during composition ofthe second message.
 19. The apparatus of claim 7, wherein the firstphrase, when presented during composition of the second message,comprises the variable, the variable being presented in a text inputfield during composition of the second message and being replaceable bya user during composition of the second message.
 20. The apparatus ofclaim 7, wherein the instructions are executable by the second processorfor: presenting, on the display, a settings user interface (UI) thatcomprises at least one option selectable to one or more of enable anddisable presentation, in the future, of candidate phrases duringcomposition of messages.